/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.general.util;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import org.cip.esymons.general.bc.UsuarioWebFacade;
import org.cip.esymons.general.be.UsuarioWeb;

/**
 *
 * @author Gilmar Montoya
 */
@DatosController(nombresFacesConfig = "uw")
public class UsuarioWebController {

    private Integer logueado;
    private String nombreUsuario;
    private String mensaje;

    private List<String> beansEnSesion = new ArrayList<String>();

    private UsuarioWeb usuarioWeb;
    @EJB
    UsuarioWebFacade usuarioWebFacade;

    public UsuarioWebController() {
        inicializar();
    }

    public UsuarioWeb getUsuarioWeb() {
        return usuarioWeb;
    }
    public void setUsuarioWeb(UsuarioWeb usuarioWeb) {
        this.usuarioWeb = usuarioWeb;
    }

    public Integer getLogueado() {
        return logueado;
    }
    public void setLogueado(Integer logueado) {
        this.logueado = logueado;
    }

    public String getNombreUsuario() {
        return nombreUsuario;
    }
    public void setNombreUsuario(String nombreUsuario) {
        this.nombreUsuario = nombreUsuario;
    }

    public String getMensaje() {
        return mensaje;
    }
    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    public UsuarioWebFacade getUsuarioWebFacade() {
        return usuarioWebFacade;
    }
    public void setUsuarioWebFacade(UsuarioWebFacade usuarioWebFacade) {
        this.usuarioWebFacade = usuarioWebFacade;
    }



    //Metodos
    public void inicializar() {
        usuarioWeb = new UsuarioWeb();
        usuarioWebFacade =  new UsuarioWebFacade();
    }

    public UsuarioWeb logueo(String cuenta, String clave) {
        try {
            //usuarioWebFacade = new UsuarioWebFacade();
//            usuarioWebDelegado = new UsuarioWebDelegate();
            usuarioWeb = usuarioWebFacade.logueo(cuenta, clave);
//            usuarioWeb = usuarioWebDelegado.logueo(cuenta, clave);
        } catch (Exception e) {
            System.out.println("ERROR: " + e.getMessage());
            usuarioWeb = null;
        }
        return usuarioWeb;
    }
    
    public String ingresarIntranet() {
        try {
            String cuenta = usuarioWeb.getUweCuenta();
            String clave = usuarioWeb.getUweClave();
            usuarioWeb = logueo(cuenta,clave);
            if (usuarioWeb == null) {
                logueado = 1;
                mensaje = "Error Usuario no existe o ingreso cuenta y clave incorrectos!";
                return "ir_a_inicio";
            } else {
                logueado = 2;
                nombreUsuario = usuarioWeb.getPerCodigo().getNombreCompleto();
                System.out.print("Datos usuario");
                System.out.print("persona: " + usuarioWeb.getPerCodigo());
                System.out.print("usuario: " + usuarioWeb.getPerCodigo().getNombreCompleto());
                return "ir_a_portal";
            }
        } catch (Exception e) {
            System.out.println("ERROR: en el metodo ingresarIntranet " + e.getMessage());
            return "ir_a_portal";
        }
    }

    public void agregar(String nombre) {
        beansEnSesion.add(nombre);
    }

    public void limpiar() {
        for (String nombre : beansEnSesion) {
            ControladorAbstracto.removeSessionProperty(nombre);
        }
        beansEnSesion.clear();
    }
    
}
